#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>

typedef int BTDataType;
typedef struct BinaryNode {
	struct BinaryNode* left;
	struct BinaryNode* right;
	BTDataType data;
}BTNode;

void PreOrder(BTNode* root);
void InOrder(BTNode* root);
void BackOrder(BTNode* root);

int BinaryTreeSize(BTNode* root);
int BinaryTreeLeafSize(BTNode* root);
int BinaryTreeLeverSize(BTNode* root,int k);
int BinaryTreeDepth(BTNode* root);
BTNode* BinaryTreeFind(BTNode* root, BTDataType x);
void BinaryDestroy(BTNode** root);

void BinaryLeverOrder(BTNode* root);
bool BinaryTreeComplete(BTNode* root);